SPSS 计算错误的周数?
By Ruben Geert van den Berg under SPSS 日期和时间变量
- 错误的周数 - 快速演示
- SPSS 周数语法示例
- GoogleDocs 中的 Isoweeks
- 解决方案
错误的周数 - 快速演示
在使用包含每日记录的数据时,我希望创建一些关于周级别的图表。因此,我使用 XDATE.WEEK
提取了周数,但是 SPSS 返回的周数是毫无意义的:每周都从 1 月 1 日开始,并且大多数年份以第 53 周仅包含 1 天 结束。
周数有不同的标准,但我认为一周的定义是 7 天的时间跨度。以下语法演示了这个问题。
SPSS 周数语法示例
***创建 500 个空案例。
**
input program.
loop mydate = 1 to 500.
end case.
end loop.
end file.
end input program.
execute.
***将 mydate 转换为实际日期。
**
compute mydate = datesum(date.dmy(1,1,2013),mydate - 1,'days').
formats mydate (date11).
***从 mydate 中提取周和年。
**
compute week = xdate.week(mydate).
execute.
数据视图中的结果起初可能看起来很正常。但是,当我们向下滚动到案例 365 时,我们看到第 53 周由 1 天组成。像这样,SPSS 的周数 不对应 于任何常规标准,也无法转换为任何标准。
GoogleDocs 中的 Isoweeks
有趣的是,Google Sheets 具有 isoweeknum
函数,该函数返回我正在寻找的 isoweeks。因此,一个“可行的解决方案”似乎是将这些复制粘贴到 SPSS 数据文件中。最后,通过日期进行 MATCH FILES 似乎可以解决问题。然后我意识到…
在 isoweek 系统中,新年附近的日期可能属于 不同年份 的一周。不幸的是,GoogleDocs 没有提供周所属的年份。下面的屏幕截图试图说明这个问题。
没错。因此,从 2013 年 12 月 30 日提取年份显然返回 2013。但是,它属于第 1 周,2014。SPSS 和 GoogleDocs 都没有提供一个函数,可以将 2014 年插入到我该日期的 数据集中。
解决方案
也许有点虎头蛇尾,但是…到目前为止 没有解决方案。我 可以 去寻找一个巨大的表格,**** 其中包含很长的时间范围以及所有 isoweeks 加上它们所属的年份。并将其转换为 SPSS。并将其合并到多个数据文件中。但我宁愿避免这种丑陋的解决方案。
所以…大家有什么建议吗?**** 如果您有更好的主意,请在下面给我留言。
感谢阅读!